import os
import re
import glob

def extract_info_from_filename(filename):
    # 文件名格式：清空_2023-09-21 18.50.25_软件技术2101班毕业设计任务书-王波.docx
    # 班级信息位于文件名的倒数第1个位置
    class_info = re.findall(r'\d+', filename.split('_')[-1])[0] # 2101
    return class_info

def extract_name_from_filename(filename):
    # 文件名格式：清空_2023-09-21 18.50.25_软件技术2101班毕业设计任务书-王波.docx
    # 软件技术2101班毕业设计任务书-王波.docx
    return filename.split('_')[-1]

def create_directory(directory_name):
    # 检查目录是否存在，不存在则创建
    if not os.path.exists(directory_name):
        os.makedirs(directory_name)

def rename_file(old_filename, new_filename):
    # 重命名文件
    os.rename(old_filename, new_filename)

def main(filename):
    class_info = extract_info_from_filename(filename) # 提取班级信息
    create_directory(class_info) # 创建班级目录
    new_filename = os.path.join(class_info, extract_name_from_filename(filename)) # 新的文件名
    rename_file(filename, new_filename) # 重命名文件

if __name__ == "__main__":
    # 定义目录路径
    dir_path = '/Users/edmond/Downloads/附件下载_毕业设计任务书收集'

    # 使用glob模块匹配所有文件
    files = glob.glob(os.path.join(dir_path, '*'))  # 获取目录下所有文件

    for file in files:
        main(file)